package br.gov.ms.tce.modelo.bean;

import java.sql.Blob;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


/**
*  @class PessoaFisica
 * @author Anderson Paulino
 * @date 27/05/2011
 *
 */
@Entity
@Table( schema = "comum", name = "pessoa_fisica")
@Inheritance(strategy=InheritanceType.JOINED)
public class PessoaFisica extends Pessoa implements java.io.Serializable {
	
	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = -4277017575339261717L;
	private String nome;
	private String cpf;
	private String rg;
	private String tituloEleitor;
	private Date dataNascimento;
	private Blob foto;	
	

	/**
	 * Construtor Padrão
	 */
	public PessoaFisica() {
	}

	public PessoaFisica(String nome) {	
		this.nome = nome;
	}

	public PessoaFisica( String nome, String cpf,
			String rg, String tituloEleitor, Date dataNascimento, Blob foto) {
		super('0',SituacaoPessoaEnum.VALIDADO,false,null);
		this.nome = nome;
		this.cpf = cpf;
		this.rg = rg;
		this.tituloEleitor = tituloEleitor;
		this.dataNascimento = dataNascimento;
		this.foto = foto;
		
	}


	@Column(name = "nome", nullable = false, length = 150)
	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	@Column(name = "cpf", length = 11)
	public String getCpf() {
		return this.cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	@Column(name = "rg", length = 20)
	public String getRg() {
		return this.rg;
	}

	public void setRg(String rg) {
		this.rg = rg;
	}

	@Column(name = "titulo_eleitor", length = 20)
	public String getTituloEleitor() {
		return this.tituloEleitor;
	}

	public void setTituloEleitor(String tituloEleitor) {
		this.tituloEleitor = tituloEleitor;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_nascimento", length = 23)
	public Date getDataNascimento() {
		return this.dataNascimento;
	}

	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	@Column(name = "foto")
	public Blob getFoto() {
		return this.foto;
	}

	public void setFoto(Blob foto) {
		this.foto = foto;
	}
	
}
